<!doctype html><html lang=cn-zh><head><meta charset=UTF-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=X-UA-Compatible content="IE=edge"><style type=text/css>body{font-family:monospace}</style><title>[笔记]git push卡主不动问题记录：Git push hangs on POST git-receive-pack</title>
<meta name=description content="A blog maintained by Vimiix."><link rel=stylesheet href=/css/style.css><script>var _hmt=_hmt||[];(function(){var e,t=document.createElement("script");t.src="https://hm.baidu.com/hm.js?7c24231917964240bae97e813810620c",e=document.getElementsByTagName("script")[0],e.parentNode.insertBefore(t,e)})()</script></head><body><header>====================<br>== Hi, I'm Vimiix ==<br>====================<div style=float:right;color:gray;font-size:x-large>Get hands dirty.</div><br><p><nav><a href=https://www.vimiix.com/><b>首页</b></a>.
<a href=/posts/><b>文章列表</b></a>.
<a href=/projects/><b>开源项目</b></a>.
<a href=/tags/><b>标签</b></a>.
<a href=/friends/><b>友链</b></a>.
<a href=/about/><b>关于我</b></a>.
<a href=/index.xml><b>RSS</b></a>.</nav></p></header><main><article><h1>[笔记]git push卡主不动问题记录：Git push hangs on POST git-receive-pack</h1><b><time>2018.03.18 18:20</time></b>
<a href=/tags/git>git</a>
<a href=/tags/note>note</a>
<a href=/tags/solution>solution</a><div><h2 id=问题>问题</h2><p>昨天完成了<a href=https://github.com/pythonzhichan/django-beginners-guide/blob/master/ClassBasedViews.md>《一个完整的 Django 入门指南》 - 第 6 部分</a>的翻译工作，本地在翻译的过程中，存储了十几张原文中的 <code>png</code> 格式的插图。</p><p>在 <code>git push</code> 提交 <strong>github</strong> 仓库的时候，终端显示写成功 100%, 但是一直卡在了下面这里没有推送成功：</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>Counting objects: 21, <span style=color:#66d9ef>done</span>.
</span></span><span style=display:flex><span>Delta compression using up to <span style=color:#ae81ff>8</span> threads.
</span></span><span style=display:flex><span>Compressing objects: 100% <span style=color:#f92672>(</span>21/21<span style=color:#f92672>)</span>, <span style=color:#66d9ef>done</span>.
</span></span><span style=display:flex><span>Writing objects: 100% <span style=color:#f92672>(</span>21/21<span style=color:#f92672>)</span>, 1018.52 KiB | 17.87 MiB/s, <span style=color:#66d9ef>done</span>.
</span></span><span style=display:flex><span>Total <span style=color:#ae81ff>21</span> <span style=color:#f92672>(</span>delta 7<span style=color:#f92672>)</span>, reused <span style=color:#ae81ff>0</span> <span style=color:#f92672>(</span>delta 0<span style=color:#f92672>)</span>
</span></span><span style=display:flex><span><span style=color:#75715e># 卡在这里</span>
</span></span></code></pre></div><p>终止加上 <code>-v</code> 参数查看详细信息，显示：</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>POST git-receive-pack <span style=color:#f92672>(</span>chunked<span style=color:#f92672>)</span>
</span></span></code></pre></div><h2 id=解决方法>解决方法</h2><p>在提交远程仓库的时候 git 在这里卡主了，经过搜索得知，这是 git 中的一个 bug ;在使用 https 传输时，如果上传的内容大小超过了一个预设上限值时，git 会使用分块编码的方式将内容上传。但这块没有实际奏效。</p><p>一个简单的解决办法是设置一个很大很大的上限值，这样让 git 不要对文件分块，就可以了。</p><p>设置这个值的方式有两种方法：</p><h3 id=1>1、</h3><p>在要提交的仓库目录下，输入下面的指令，其中 <code>52428800</code> 不是一个固定的值，可以根据你自己需求自己设定：[1]</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>git config http.postBuffer <span style=color:#ae81ff>524288000</span>
</span></span></code></pre></div><h3 id=2>2、</h3><p>第二种方式是，打开项目目录下面的 <strong>.git/</strong> 文件夹下面的 <strong>config</strong> 文件， 在文件末添加 <code>postBuffer</code> 的值：</p><p>打开文件：</p><div class=highlight><pre tabindex=0 style=color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4><code class=language-bash data-lang=bash><span style=display:flex><span>vim .git/config
</span></span></code></pre></div><p>追加参数：</p><pre tabindex=0><code># ...
[http]
     postBuffer = 524288000
</code></pre><h2 id=more>More</h2><p>这两种方法最后实现的效果都是一样的，第一种方法是第二种方法的自动化写入配置参数的方式。</p><p>修改过以后，当再次执行 <strong>git push</strong> 的时候，你会发现，还是会卡在这里，但是不用着急，文件本身就比较大，耐心的等一会就可以成功提交了。</p><p>最后，其实最好的解决方法，我觉得就是不要在 github 上存储代码以外的大文件，大的文件可以上传到 CDN, 通过链接来调用。如果要存图片可以考虑将 <strong>png</strong> 转格式为 <strong>jpg</strong> 格式。</p><h2 id=参考链接>参考链接</h2><ol><li><a href=https://stackoverflow.com/questions/10790232/hanging-at-post-git-receive-pack-chunked>[stackoverflow] Hanging at “POST git-receive-pack (chunked)”</a></li></ol></div></article></main><aside><div><div><h3>LATEST POSTS</h3></div><div><ul><li><a href=/posts/2025-10-16-kubernetes-apiserver-authorization-mechanism/>Kubernetes APIServer 鉴权机制</a></li><li><a href=/posts/2025-09-30-kubernetes-apiserver-authentication-mechanism/>Kubernetes APIServer 认证机制</a></li><li><a href=/posts/2024-12-16-deploy-kubernetes-by-kubeadm/>使用 kubeadm 搭建 kubernetes 集群</a></li><li><a href=/posts/2024-09-20-how-to-code-review/>如何做code review</a></li><li><a href=/posts/2024-08-12-weakref-in-python/>Python中的弱引用</a></li></ul></div></div></aside><footer><p>Social Links:
<a href=https://github.com/vimiix><b>Github</b></a>.
<a href=https://www.douban.com/people/vimiix/><b>Douban</b></a>.
<a href=mailto:i@vimiix.com><b>Email</b></a>.<br><hr>&copy; 2017-2025
Vimiix Yao; All rights reserved.
<a href=https://beian.miit.gov.cn/>京ICP备19015214号-1</a></p><script src=https://l2dwidget.js.org/lib/L2Dwidget.min.js></script><script>L2Dwidget.init({model:{jsonPath:"https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json"}})</script></footer></body></html>